# LuckPay Web Manage System
#
# Copyright (c) 2016 Lucky Byte, Inc.
#
$ ->
    form = $('.form.main')

    # 折叠/展开信息处理
    form.find('h4.dividing.header i.icon.accordion').click (evt) ->
        visible = $(this).hasClass('down')
        if visible
            $(this).removeClass('down').addClass('right')
        else
            $(this).removeClass('right').addClass('down')
        parent = $(this).parent('.dividing.header')
        while true
            next = parent.next()
            if not next.hasClass('fields')
                break
            if visible then next.hide('fast') else next.show('fast')
            parent = next;

    # 如果当前form禁用状态，则将界面元素冻结
    if form.data('disabled')
        form.find('*').not('button#disable').not('button#cancel')
            .addClass('disabled').attr('disabled', "disabled")

    # 提交时设置确认按钮的加载状态动画
    ###
    form.submit (evt) ->
        if not $(this).form('is valid')
            evt.preventDefault()
            return false
        form.find('button#ok').addClass('loading')
        ###

    # 删除按钮事件
    form.find('button#delete').click (evt) ->
        action = $(this).data('action')
        return alert '删除按钮没有定义 data-action' if not action

        if $(this).hasClass('has_clicked')
            $(this).addClass 'loading'
            $(this).removeClass('has_clicked').text('删 除')
            $.post action, {
                serial: form.form('get value', 'serial') or '',
                uuid:   form.form('get value', 'uuid') or ''
            }, (resp) ->
                form.find('button#delete').removeClass 'loading'
        else
            $(this).addClass('has_clicked').text('确认删除')

    # 禁用按钮事件
    form.find('button#disable').click ->
        action = $(this).data('action')
        return alert '删除按钮没有定义 data-action' if not action

        disabled = $(this).data('disabled')
        return alert '禁用/启用按钮没有定义 data-disabled' if disabled == undefined

        if disabled
            $(this).addClass 'loading'
            $.post action, {
                serial: form.form('get value', 'serial'),
                uuid:   form.form('get value', 'uuid'),
                disabled: not disabled
            }, (resp) ->
                form.find('button#disable').removeClass 'loading'
        else
            if $(this).hasClass('has_clicked')
                $(this).removeClass('has_clicked').text('禁 用')
                $(this).addClass 'loading'
                $.post action, {
                    serial: form.form('get value', 'serial'),
                    uuid:   form.form('get value', 'uuid'),
                    disabled: not $(this).data('disabled')
                }, (resp) ->
                    form.find('button#disable').removeClass 'loading'
            else
                $(this).addClass('has_clicked').text('确认禁用')
